+++++++++++++*++++****###**+====----=+************************************######
++++++++++++###%@@%@%%%%%@@%#*+=---==+******************************************
+++++++++++*@@@@%%%%%%%%#%@@%%#*+========++++++++++=============================
+++++++*###%%%%%%%%%%%%%%%%@@%%#%#+=============================================
+++++++#%@%%%%%@@%@@@@@@@@@@@%%%%@%+============================================
++++++%%%%%%%@@@@@@@@@@@@@@@@@@@@@@#+===========================================
+++++#@%%%%%@@@@@@@%%%%%%%%%@@@@@%%%##*+========================================
++++#@@%%%%@@%%#**++++++++**###%%%%%%%%%#+=================================*####
++++#@%%%%%%#++=============+++*##%%%@@@@%+================================#@@@@
++++%@@@@%*+==================+++*##%%@@@@%+===============================#@@@@
+++#@@@%%*====================++++*#%@@@@@@%+==============================#@@@@
+++#@@@%*+====================++++**#%@@@@@@*==============================#@@@@
+++#%@%*++=====================++++*##%@@@@%*==============================#@@@@
++++*@%+++=============+++++++++++++*#%%%%@%+==============================*@@@@
++++#@%++==========++*#%%####%%#*****##%%@@%+==============================*@@@@
++++*@%*++******++++#%%%##*###%#+++++*#%%%%%+==============================*@@@@
+++=+#@#%%%%%%%%##*##**##%%%#*+*=+++++**++*#+==============================*@@@@
+++++#%%%####%%%%#+*#*++**++++++==++++*++++*+==============================*%@@@
++++#@#*#%%%%%*#%+==+#+======+*+=++++**++#*++==============================*@@@@
+++++##***#**++*#====+*+++++++==+++****++**+++=============================*%@@@
++++++#*++++==+#+====++++++++++++++*****++=+++=============================*%@@@
+++++++***+++***+==++*++++++=++++++++***+++++==============================*%@@@
++++++++*****++*####%##*===++++++++++***#*++===============================*%@@@
+++++++++#**+++*#%%#*+===++++++++++++***%*=================================*%@@@
+++++++++##**++**##*******#*+++++++++****+=================================*%@@@
++===++++*#**+*#%%#####***++++++++++****++=================================*%@@@
++===+++++##******##**+++++++++++***##**++=================================*%@@@
++===+++++*##**++++++========++**####**+++=================================*%@@@
++===++++++*##**++++++++++=++**#####+++++*=================================*%@@@
++===++++++++#%%#**********#######*++++++++================================*%@@@
++===+++++++++*#%%%##%%%%%%#####**+++++++++================================*%@@@
++===+++++++++**+*%%%%%%%#####**++++++++++++===============================*%@@@
++===+++++++++**+=#%%%%%%###***+++++++=====================================*%@@@
++===+++++++++**+=#%#####***+++++++====----=====+==========================*%@@@
++===+++++++++**+=#@#***+++++++++==-------======#%*========================*%@@@
++===+++++++++**+=#@%*++++++++==-----------====*%@@#+======================*%@@@
++===++++++++++*+=#@#%#*+*++==----------===--+#@@%@@%#+====================*%@@@
+++==+++++++++*%#*#@+*##*++*=--------------=*%@%%%%%%@%%*+=================*%@@@
+++==++++++#@%%@@@%%++***#@@%#+-------==--=#%%%%%%%%%%%@@%%#+==============*%@@@
+++==++++++%@@@@@@%%%%%%@@@@@@%=-----=---+%%%%%%%%%%%%%@%%%@%#***++========*%@@@
+++==++++++%@@@@@@@@@@@@@@@@@@@+--------+%%%%%%%%@@@@@@@%%%%%@%%@%%%*+=====+%@@@
++++++++**#@@@@@@@@@@@@@@@@@@@@%+=----=*%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%##*+=+%@@@
++++++*%@@@@@@@@@@@@@@@%%@@@@@@@#*+=-=#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%@@@
+++=+#@@@@@@@@@@@@@%@%#**#%@@@@@*====#%%%%%%@@%%%%%%@@%%%%%%%%%%%%%%%%%%%%%%%%%@
++++%@@@@@@@@@@@@%%%###+++*#%%@@*=-=#%%%%%%%%@@@%%%@@%%%%%%%%%%%%%%%%%%%%%%%@@@@
++*%@@@@@@@@@@@@##%#*++===++***#===#%%%%%%%%%%%%%@@@%%%%%%%%%%%%%%%%%%%@%@@@@@@@
+*@@@@@@@@@@@@@%*++++=-====+++====#@%%%%%%%%%%%%@@%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@
*%@@@@@@@@@@@@%%#====-----=======#@%%%%%%%%%%%%@@%%%%%%%%%%%%%%%@@%@@@@@@@@@@@@@
@@@@@@@@@@@@@@##**===--=--======#@%%%%%%%%%%%@@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%*++*+=--------===#@%%%%%%%%%%%@@@%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@%=++++=---------=#@%@%%%%%%%%%@@@%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%@@@@@@@@@@@@#===+=-----=---=*@@@@@%%%%%%%@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%@@@@@@@@@@@#=-=========---*%@@@@@%%%%%%@@%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%@@@@@@@@@@@%=--==-======-*%@@@@@@%%%%@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%@@@@@@@@@@#*=-=====+===+%@%@@%%%%%%@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#%%@@@@@@@@@@#*+======++=+%@@@@%%%%%@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#%%@@@@@@@@@@#+++=--===++%@@@@@@@%%@@@%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@